package com.woniuxy.creditsystem.common.mapper;


import com.woniuxy.creditsystem.common.bean.SystemLogInfo;
import com.woniuxy.creditsystem.common.bean.UserInfo;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.FetchType;

import java.util.List;

/**
 * 系统日志 的增、删、查、改
 * @author hejie
 */
@Mapper
public interface SystemLogMapper {

    /**
     * 删除系统日志
     * @param id
     * @return 受影响的行数
     */

    @Delete("delete from system_log_info where id = #{id}")
    int deleteSystemLogInfo(@Param("id")Long id);
    /**
     * 分页查询
     * @author hejie
     * @param systemLogInfo
     * @return
     */
    List<SystemLogInfo> findAllByParamsIfUserEmpty(@Param("a") SystemLogInfo systemLogInfo,
                                        @Param("excuteTimeStr") String excuteTimeStr);

    List<SystemLogInfo> findAllByParamsIfUserNotEmpty(@Param("a") SystemLogInfo systemLogInfo,
                                        @Param("excuteTimeStr") String excuteTimeStr);

    /**
     * 新增 系统日志对象
     * @param systemLogInfo
     * @return
     */
    @Options(
            useGeneratedKeys = true,
            keyProperty = "a.id"
    )
    @Insert("insert into system_log_info " +
            "(fk_user_id,excute_time,operation,request_method,excute_time_consume,ip,execute_result,request_param,error_info,error_stack,del_flag)" +
            " values(#{a.userInfo.id},now(),#{a.operation},#{a.requestMethod},'15',#{a.ip},#{a.executeResult},#{a.requestParam},#{a.errorInfo},#{a.errorStack},'1')" )
    int saveSystemLogBean(@Param("a") SystemLogInfo systemLogInfo);
}
